<?php

namespace app\api\controller;
use think\Db;
use app\store\model\Wxapi as WxapiModel;
// use think\Session;
use think\Cache;

class Wxapi extends Controller
{
	// 批量发送活动通知
    public function send()
    {
 
    	// 请求超时
    	ini_set('max_execution_time', '0');
    	// 请求参数
    	$data = $this->request->param();
    	// 获取用户数据
    	$users = Db::name('user')->where('is_black',1)
    						// ->where('user_id',17172)
    						->paginate($data['rows'],true,['page'=>$data['times']]);
    	$users = $users->toArray()['data'];
    	if(empty($users)) return false;
    	
    	$data['users'] = $users;
    	// 发送
    	$res = WxapiModel::huodong($data);
    	// 如果当前是第一次则新增一条
    	if($data['times'] == 1){
    		$arr = [];
    		$arr['name'] = $data['title'];
    		$arr['send_times'] = $res['send_times']; // 发送次数
    		$arr['success_times'] = $res['success_times']; // 成功次数
    		$arr['date'] = time(); // 创建时间
    		$id = Db::name('subscribe_message_send_log')->insertGetId($arr);
    		// 先清理一下缓存
    		Cache::rm('subscribe_message_send_log_id'); 
    		// 把id设置到缓存
    		Cache::set('subscribe_message_send_log_id',$id,3600 * 24);
    	}else{
    		// 获取当前最新的一条活动记录
    		// $maxId = db('subscribe_message_send_log')->max('id');
    		$id = Cache::get('subscribe_message_send_log_id');
    		// 更新发送次数
    		Db::name('subscribe_message_send_log')->where('id',$id)->setInc('send_times', $res['send_times']);
    		// 更新发送成功的次数
    		Db::name('subscribe_message_send_log')->where('id',$id)->setInc('success_times', $res['success_times']);
    	}
    	usleep(50000); // 延迟50毫秒
    	return true;
    }
    
    // 统计用户点击活动通知的次数
    public function view_times(){
    	$data = $this->request->param();
    	$txt = '测试接口:'.json_encode($data).date('Y-m-d H:i:s',time())."\n";
    	file_put_contents($_SERVER['DOCUMENT_ROOT'].'/t.txt',$txt, FILE_APPEND);
    }
}
?>